export const getInputs = () => [
	[[1, 3, 5, 2, 1, 3, 1]],
	[[1, 2, 3, 4]],
	[[42, 8, 75, 28, 35, 21, 13, 21]],
	[[65, 84, 91, 18, 59, 27, 9, 81, 33, 17]],
];

/**
 * **[6324. 最大化数组的伟大值](https://leetcode.cn/contest/biweekly-contest-100/problems/maximize-greatness-of-an-array/)**
 *
 * 给你一个下标从 `0` 开始的整数数组 `nums` 。你需要将 `nums` 重新排列成一个新的数组 `perm` 。
 *
 * 定义 `nums` 的 **伟大值** 为满足 `0 <= i < nums.length` 且 `perm[i] > nums[i]` 的下标数目。
 *
 * 请你返回重新排列 `nums` 后的 **最大** 伟大值。
 *
 * @param nums
 * @returns
 */
export default function (nums: number[]): number {
	const perm = nums.sort((a, b) => a - b);
	const len = nums.length;

	let i = 0;
	while (perm[i] === perm[0]) {
		i++;
	}

	let result = 0;
	for (; i < len; i++) {
		let res = 0;
		for (let j = i; j < len; j++) {
			if (perm[j - i] < perm[j]) {
				res++;
			}
		}
		if (res === len - 1) return res;
		result = Math.max(result, res);
	}

	return result;
}
